package controller;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebServlet("/logout")
public class LogoutServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 先找到当前用户的会话,
        HttpSession session = req.getSession(false);
        if (session == null) {
            // 用户没有登录!! 谈不上注销!

            resp.getWriter().write("当前用户尚未登录! 无法注销!");
            return;
        }
        // 然后把这个用户的会话中的信息给删掉就行了
        // 啥样算是已经登录?
        // 用户有一个session,同时session 有一个user属性 两者同时具备，才叫登录状态
        // 注销，只要破坏掉上面的任意一个条件就行了
        // 此处选择的是破坏第二个条件 把user属性从session中删了
        // 登录状态的代码在LoginServlet中
        // user属性被删除
        // 后续读取的时候
        // 得到的就是null
        // 因此就会给客户端返回一个无效User对象
        // 客户端就懂了，就认为是未登录状态
        session.removeAttribute("user");

        // 这里是重定向  退出注销后 跳转到的页面
        resp.sendRedirect("blog_login.html");
    }
}